package com.tools.cleanmaster.scenenew;

/**
 * Created by wuyanfei on 15/4/17.
 * 场景化分类.后续版本不要随意修改原有类型的信息。
 */
public enum SceneType {

    /**
     * 总CPU占用过高
     */
    BG_CPU_OVERLOAD("bgcol", ScenePriority.A_PLUS),

    /**
     * cpu降温
     */
    CPU_COOLER("cpucl", ScenePriority.A),

    /**
     * 总内存占用过高
     */
    BG_MEM_OVERLOAD("bgmol", ScenePriority.A),

    /**
     * 短时间耗电过快
     */
    BAT_SHARPDEC("batsdec", ScenePriority.A_PLUS),

    /**
     * 频繁调用网络
     */
    NETFRQ_SCREENOFF("netfso", ScenePriority.A),

    /**
     * 低电量提示
     */
    BATTERY_LOW("batlo", ScenePriority.B),

    /**
     * 应用专清
     */
    APP_CLEAN("appclean", ScenePriority.A_PLUS);

    /**
     * 场景化类型的唯一标识，用于数据上报
     */
    public String key;

    /**
     * 场景化消息的优先级，和产品策略相关
     */
    public ScenePriority priority;

    SceneType(String key, ScenePriority priority) {
        this.key = key;
        this.priority = priority;
    }

    /**
     * 根据定义key获取场景化枚举
     *
     * @param key 场景化类型唯一定义key
     * @return SceneType
     */
    public static SceneType getTypeByKey(String key) {
        for (SceneType sceneType : SceneType.values()) {
            if (sceneType.key.equals(key)) {
                return sceneType;
            }
        }
        return null;
    }

    @Override
    public String toString() {
        return name() + "(" + key + ")";
    }
}
